そのため、構造体のリストに関してlist :: sort()の適切な使用法を理解するのに問題があります。関連するコードは次のとおりです。 構造体の学生 {{ char firstnm [20]、 lastnm [20]; int id、 グレード; }; listsList; //不適切なコード... cout << "自分の名前、ID、グレードを入力してください。(例:myfirst mylast 0 12)\ n"; cin >> data.firstnm >> data.lastnm >> data.id >> data.grade; sList.push_back(data); sList.sort(); 私が解決しようとしている問題は、sList.sort()を使用してIDでソートすることです。ただし、それをlist :: sort()に適切に渡す方法がわかりません。助け/時間をありがとう! 編集:解決策は単にこれを私の構造に追加することでした ブール演算子<(const student&cmp)const { id
2021-01-22 08:20:49
std :: sortを見てください。 (https://en.cppreference.com/w/cpp/algorithm/sort)その関数には複数の定義があり、並べ替えるものを指定できる定義があります。 また、その投稿を見てください、私はそれがあなたが必要としているものだと思います:https://stackoverflow.com/a/21234017/6663947 編集: それはコンパレータの例です: sList.sort([](const student&a、const student&b){return a.idvoid sort(Compare comp); リスト内の学生オブジェクトをキーIDに従って昇順で並べ替えるとします。ユーザー定義の学生クラスのoperator <を次のように定義できます。 ブール演算子<(student const&a、student const&b){ a.id